import Vue from 'vue'
import Vuex from 'vuex'
import axios from 'axios'

Vue.use(Vuex)

// 该文件主要用于给外部提供一个store对象
export default new Vuex.Store({
	//action中配置着，响应组件“动作”的方法 —— 服务员
	actions:{
		/* jia(miniStore,value){
			console.log('我是jia方法（服务员），我执行了')
			miniStore.commit('JIA',value)
		},
		jian(miniStore,value){
			console.log('我是jian方法（服务员），我执行了')
			miniStore.commit('JIAN',value)
		}, */
		jiaOdd(miniStore,value){
			if(miniStore.state.sum % 2){
				miniStore.commit('JIA',value)
			}
		},
		jiaWait(miniStore,value){
			setTimeout(()=>{
				miniStore.commit('JIA',value)
			},1000)
		},
		async jiaServer(miniStore){
			try {
				let result = await axios.get('https://api.uixsj.cn/hitokoto/get?type=social')
				console.log(result.data)
				miniStore.commit('JIA',result.data.length)
			} catch (error) {
				alert(error)
			}
		}
	},
	// mutations中配置着可以真正操作数据的方法 —— 后厨
	mutations:{
		JIA(state,value){
			console.log('我是JIA方法（后厨），我执行了')
			state.sum += value
		},
		JIAN(state,value){
			console.log('我是JIAN方法（后厨），我执行了')
			state.sum -= value
		}
	},
	// 数据 —— 原材料
	state:{
		sum:1,
		school:'尚硅谷',
		subject:'挖掘机',
		teacher:'tony',
	},
	getters:{
		bigSum(state){
			return state.sum*10
		}
	}
})
